using System;
using System.Collections.Generic;
using System.Text;

namespace Parsifal
{
    public class PlaylistCollection : ManageGenericsArray<object>
    {
        private ManageGenericsArray<PlaylistItem> iArPlaylist;

        public PlaylistCollection()
        {
            //costruttore
        }

        public void AddElementToCollection(PlaylistItem aItem)
        {
            int res = this.AddElementToArray(aItem);
            aItem.Index = res;

        }

        public void RemoveElementToCollection(int aIndex)
        {
            //cambiamento incerto
            //this.RemoveElementToArray(aIndex);

            for (int i = 0; i < this.Array.Count; i++)
            {
                PlaylistItem it = (PlaylistItem)this.Array[i];
                if (it.Index == aIndex)
                {
                    this.RemoveElementToArray(it);
                }
            }
        }


        public PlaylistItem GetPlaylistItem(int aIndex)
        {

            PlaylistItem iTempPlaylistItem=null;

            try
            {
                 iTempPlaylistItem = (PlaylistItem)this.Array[aIndex];

            }
            catch (Exception err)
            {
                
                throw new Exception("Errore nell'estrazione del PlaylistItem con l'indice passato in parametro");
            }

            return iTempPlaylistItem;
        }




        public PlaylistItem GetPlaylistItem(int iInterIndex, string groupname,string path)
        {

            PlaylistItem iTempPlaylistItem = null;
            PlaylistItem res = null;

            try
            {


                for (int i = 0; i < this.Array.Count; i++)
                {

                    iTempPlaylistItem = (PlaylistItem)this.Array[i];
                    if (iTempPlaylistItem.GroupName == groupname)
                    {
                        res = iTempPlaylistItem;
                    }

                }

                

                return res;

            }
            catch (Exception err)
            {

                throw new Exception("Errore nell'estrazione del PlaylistItem con l'indice passato in parametro");

                return null;
            }

            return iTempPlaylistItem;
        }




        public PlaylistItem GetActivePlaylistItem()
        {
            PlaylistItem res = null;
            PlaylistItem iTPlaylistItem = null;

            try
            {
              
                    
                    for (int i = 0; i < this.Array.Count; i++)
                    {
                        iTPlaylistItem = (PlaylistItem)this.Array[i];
                        if (iTPlaylistItem.isActive == true)
                        {
                            res = iTPlaylistItem;
                        }
                    }

                    return res;
                }
                catch (Exception err)
                {

                    throw err;
                }
        }
           


    }
}
